home *** CD-ROM | disk | FTP | other *** search
/ IRIX 6.2 Development Libraries / SGI IRIX 6.2 Development Libraries.iso / dist / complib.idb / usr / share / catman / p_man / cat3 / complib / zhegv.z / zhegv
Text File  |  1996-03-14  |  5KB  |  133 lines

  1.  
  2.  
  3.  
  4. ZZZZHHHHEEEEGGGGVVVV((((3333FFFF))))                                                            ZZZZHHHHEEEEGGGGVVVV((((3333FFFF))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      ZHEGV - compute all the eigenvalues, and optionally, the eigenvectors of
  10.      a complex generalized Hermitian-definite eigenproblem, of the form
  11.      A*x=(lambda)*B*x, A*Bx=(lambda)*x, or B*A*x=(lambda)*x
  12.  
  13. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  14.      SUBROUTINE ZHEGV( ITYPE, JOBZ, UPLO, N, A, LDA, B, LDB, W, WORK, LWORK,
  15.                        RWORK, INFO )
  16.  
  17.          CHARACTER     JOBZ, UPLO
  18.  
  19.          INTEGER       INFO, ITYPE, LDA, LDB, LWORK, N
  20.  
  21.          DOUBLE        PRECISION RWORK( * ), W( * )
  22.  
  23.          COMPLEX*16    A( LDA, * ), B( LDB, * ), WORK( * )
  24.  
  25. PPPPUUUURRRRPPPPOOOOSSSSEEEE
  26.      ZHEGV computes all the eigenvalues, and optionally, the eigenvectors of a
  27.      complex generalized Hermitian-definite eigenproblem, of the form
  28.      A*x=(lambda)*B*x,  A*Bx=(lambda)*x,  or B*A*x=(lambda)*x.  Here A and B
  29.      are assumed to be Hermitian and B is also
  30.      positive definite.
  31.  
  32.  
  33. AAAARRRRGGGGUUUUMMMMEEEENNNNTTTTSSSS
  34.      ITYPE   (input) INTEGER
  35.              Specifies the problem type to be solved:
  36.              = 1:  A*x = (lambda)*B*x
  37.              = 2:  A*B*x = (lambda)*x
  38.              = 3:  B*A*x = (lambda)*x
  39.  
  40.      JOBZ    (input) CHARACTER*1
  41.              = 'N':  Compute eigenvalues only;
  42.              = 'V':  Compute eigenvalues and eigenvectors.
  43.  
  44.      UPLO    (input) CHARACTER*1
  45.              = 'U':  Upper triangles of A and B are stored;
  46.              = 'L':  Lower triangles of A and B are stored.
  47.  
  48.      N       (input) INTEGER
  49.              The order of the matrices A and B.  N >= 0.
  50.  
  51.      A       (input/output) COMPLEX*16 array, dimension (LDA, N)
  52.              On entry, the Hermitian matrix A.  If UPLO = 'U', the leading N-
  53.              by-N upper triangular part of A contains the upper triangular
  54.              part of the matrix A.  If UPLO = 'L', the leading N-by-N lower
  55.              triangular part of A contains the lower triangular part of the
  56.              matrix A.
  57.  
  58.              On exit, if JOBZ = 'V', then if INFO = 0, A contains the matrix Z
  59.              of eigenvectors.  The eigenvectors are normalized as follows:  if
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. ZZZZHHHHEEEEGGGGVVVV((((3333FFFF))))                                                            ZZZZHHHHEEEEGGGGVVVV((((3333FFFF))))
  71.  
  72.  
  73.  
  74.              ITYPE = 1 or 2, Z**H*B*Z = I; if ITYPE = 3, Z**H*inv(B)*Z = I.
  75.              If JOBZ = 'N', then on exit the upper triangle (if UPLO='U') or
  76.              the lower triangle (if UPLO='L') of A, including the diagonal, is
  77.              destroyed.
  78.  
  79.      LDA     (input) INTEGER
  80.              The leading dimension of the array A.  LDA >= max(1,N).
  81.  
  82.      B       (input/output) COMPLEX*16 array, dimension (LDB, N)
  83.              On entry, the Hermitian matrix B.  If UPLO = 'U', the leading N-
  84.              by-N upper triangular part of B contains the upper triangular
  85.              part of the matrix B.  If UPLO = 'L', the leading N-by-N lower
  86.              triangular part of B contains the lower triangular part of the
  87.              matrix B.
  88.  
  89.              On exit, if INFO <= N, the part of B containing the matrix is
  90.              overwritten by the triangular factor U or L from the Cholesky
  91.              factorization B = U**H*U or B = L*L**H.
  92.  
  93.      LDB     (input) INTEGER
  94.              The leading dimension of the array B.  LDB >= max(1,N).
  95.  
  96.      W       (output) DOUBLE PRECISION array, dimension (N)
  97.              If INFO = 0, the eigenvalues in ascending order.
  98.  
  99.      WORK    (workspace/output) COMPLEX*16 array, dimension (LWORK)
  100.              On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
  101.  
  102.      LWORK   (input) INTEGER
  103.              The length of the array WORK.  LWORK >= max(1,2*N-1).  For
  104.              optimal efficiency, LWORK >= (NB+1)*N, where NB is the blocksize
  105.              for ZHETRD returned by ILAENV.
  106.  
  107.      RWORK   (workspace) DOUBLE PRECISION array, dimension (max(1, 3*N-2))
  108.  
  109.      INFO    (output) INTEGER
  110.              = 0:  successful exit
  111.              < 0:  if INFO = -i, the i-th argument had an illegal value
  112.              > 0:  ZPOTRF or ZHEEV returned an error code:
  113.              <= N:  if INFO = i, ZHEEV failed to converge; i off-diagonal
  114.              elements of an intermediate tridiagonal form did not converge to
  115.              zero; > N:   if INFO = N + i, for 1 <= i <= N, then the leading
  116.              minor of order i of B is not positive definite.  The
  117.              factorization of B could not be completed and no eigenvalues or
  118.              eigenvectors were computed.
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.